import numpy as np
import matplotlib.pyplot as plt
def data_process(data):
    # 百分位数是统计中使用的度量 表示小于这个值的观察值占某个百分比 q 要计算的百分位数,在 0 ~ 100 之间
    a = np.percentile(data, 75)
    i = 0
    j = len(data) - 1
    while data[i] < a or data[j] < a:
        if data[i] < a:
            i += 1
        if data[j] < a:
            j -= 1
        if i == j:
            break
    return data[i:j + 1]
 
def clean(data):
    q3 = np.percentile(data,75)
    q1 = np.percentile(data,25)
    up = q3 + 1.5 * (q3 - q1)
    down = q1 - 1.5 * (q3 - q1)
    data = data[(data < up) & (data > down)]
    return data

data = np.array([8.2,5.4,14.0,7.3,4.7,9.0,6.5,10.1,7.7,6.0])

plt.boxplot(data)
#plt.scatter(data);
data = clean(data)

plt.show()